"""
继承中的方法重写解释：
    概述：
        子类出现了和父类一模一样（属性名或者方法名）的属性或者方法（函数）时，称为：方法重写。

    应用场景：
        当子类需要从父类沿袭一些功能。但是功能主体又有自己独有需求的时候，就可以考虑使用方法重写了。

"""
# 需求：定义一个人类，属性：姓名，年龄，行为：学习，同时定义一个老师类，一个学生类，需要继承自人类。重写其学习方法
#1：定义人类
class Person(object):
    # __init__, 创建对象的时候调用
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 学习的方法（行为）
    def study(self):
        print(f"{self.name}活到老，学到老。。。")

    def interView(self):
        print("面试要着装得体，文明礼貌。。。")

# 定义老师类
class Teacher(Person):
    def study(self):
        print(f"{self.name}老师，发誓好好备课，带领学员高薪就业。。。")

    def interView(self):
        """
        子类调用父类的同名方法, 三种写法
            方式1：super(当前子类名, self).父类名()
            方式2：super().父类名()
            方式3：父类名.父类同名方法()
        :return:
        """
        # super(Teacher, self).interView(), 简化的写法
        super().interView()
        print(f"{self.name}老师，面试架构师。。。")

# 定义学生类
class Student(Person):
    def study(self):
        print(f"{self.name}学生，发誓好好学习，保证高薪就业。。。")

    def interView(self):
        # super(Student, self).interView()
        Person.interView(self)
        print(f"{self.name}学生，面试程序员。。。")

if __name__ == '__main__':
    # 2：创建对象
    t1 = Teacher("张三", 28)
    s1 = Student("李四", 18)

    # 3：调用父类的方法
    t1.interView()
    print("----------------------")
    s1.interView()